home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / airplane.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  3.9 KB  |  111 lines

  1. #
  2. #  Model of airplane
  3. #
  4.  
  5. #create the body of airplane
  6. cbody = cbspline(3, list(
  7.           ctlpt(E3,0.0000, 0.0, -1.160000 ),
  8.           ctlpt(E3,0.284 , 0.0, -1.160000),
  9.           ctlpt(E3, 0.524, 0.0, -0.764000),
  10.           ctlpt(E3, 0.568, 0.0, -0.436000),
  11.           ctlpt(E3, 0.524, 0.0, -0.012000),
  12.           ctlpt(E3, 0.452, 0.0,  0.26000),
  13.           ctlpt(E3, 0.356,  0.0, 0.492000),
  14.           ctlpt(E3, 0.236, 0.0,  0.640000),
  15.           ctlpt(E3, 0.0,   0.0,  0.640000)),
  16.       list(0,0,0,3,4,5,6,7,8,11,11,11) );
  17. body = surfrev(cbody);
  18.  
  19. #create the sections of wing
  20. wingsec1 = cbspline(4, list(
  21.                   ctlpt(E3, 0.0, 0.0, 0.2),
  22.                   ctlpt(E3, 0.007, 0.0, 0.2),
  23.                   ctlpt(E3, 0.01, 0.0, 0.01),
  24.                   ctlpt(E3, 0.07, 0.0, -0.2),
  25.                   ctlpt(E3, 0.0, 0.0, -0.2),
  26.                   ctlpt(E3, -0.07, 0.0, -0.2),
  27.                   ctlpt(E3, -0.01, 0.0, 0.01),
  28.                   ctlpt(E3, -0.007, 0.0, 0.2),
  29.                   ctlpt(E3, 0.0, 0.0, 0.2)),                     
  30.            list(0,0,0,0,2,3,4,5,6,7,7,7,7));
  31. wingsec2 = wingsec1 * scale(vector(0.2,0.2,0.2))*
  32.            trans(vector(0.0,0.65,0.0));
  33. wingsec3 = wingsec1*scale(vector(0.207,0.207,0.207)) *trans(vector(0.0,0.675,0.0));
  34. wingsec4 = wingsec3 * scale(vector(0.0,0.0,0.5)) *trans(vector(0.0,0.68,0.0));
  35.  
  36. #create the wing as surface on the sections
  37. wing = sfromcrvs(list(wingsec1,wingsec2,wingsec3,wingsec4),4);
  38.  
  39. #create the two wings and tail
  40. rightwing = wing * scale(vector(2.,2.,2))*
  41.            trans(vector(0.0,0.45,-0.2));
  42. leftwing = rightwing*rotz(180);
  43.  
  44. tail = rightwing * roty(180)*scale(vector(1.5,0.5,0.6))* rotz(90) *
  45.          roty(10)*trans(vector(-0.1,0.0,0.15));
  46.               
  47.  
  48. # create the   propeller
  49.  
  50. s = sphere(vector(0.0,0.0,0.0),0.1);
  51. blade = sfromcrvs ( list(
  52.                 cbezier(list( ctlpt(E3, 0.0, -0.07, 0.0),  
  53.                               ctlpt(E3, 0.0, 0.07, 0.0))),
  54.                 cbezier(list( ctlpt(E3, 0.4, -0.18, 0.0),  
  55.                               ctlpt(E3, 0.4, 0.18, 0.0))),
  56.                 cbezier(list( ctlpt(E3, 0.5, -0.13, 0.0),  
  57.                               ctlpt(E3, 0.5, 0.13, 0.0))),
  58.                 cbezier(list( ctlpt(E3, 0.6, -0.05, 0.0),  
  59.                               ctlpt(E3, 0.6, 0.05, 0.0))), 
  60.                 cbezier(list( ctlpt(E3, 0.6, 0.0, 0.0),  
  61.                               ctlpt(E3, 0.6, 0.0, 0.0)))), 5);
  62. bld = blade * rotx(180);
  63. bl1 = blade * trans(vector(0.0,0.0,0.005));
  64. bl2 = bld * trans(vector(0.0,0.0, -0.005));
  65.  
  66. crossaxis = cmesh(blade,COL,0);
  67. cov1 = sweepsrf(cbezier(list( ctlpt(E3, 0.0, -0.005, 0.0),  
  68.                               ctlpt(E3, 0.0, 0.005, 0.0))),
  69.                 crossaxis,OFF);
  70. cov = cov1 + cov1*rotx(180);
  71. blade = bl1 + bl2 + cov; 
  72.  
  73. #create the four blades of propeller
  74. blade1 = blade * rotx(15) * trans(vector(0.03,0.0,0.0));
  75. blade2 = blade1 * rotz(90);
  76. blade3 = blade2 * rotz(90);
  77. blade4 = blade3 * rotz(90);
  78. propeller = list(s,blade2,blade4,blade3,blade1);
  79. propeller = propeller * trans(vector(0.0,0.0,-1.18));
  80. color(propeller,RED);
  81.  
  82.  
  83. #create the ladinggear
  84. a1 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02),
  85.                cbezier(list(ctlpt(E3,  0.0, -0.4, 0.0),
  86.                             ctlpt(E3,  0.0, 0.4,  0.0))),OFF);
  87.  
  88. a2 = sweepsrf(circle(vector(0.0,0.0,0.0),0.02),
  89.                cbezier( list (ctlpt(E3, -0.15, 0.0, 0.0),
  90.                               ctlpt(E3, 0.0, 0.0, 0.0) ) ),OFF); 
  91. axis =  a1+a2;
  92. landgear = list(axis,
  93.     torus(vector(0.0, -0.37, 0.0),vector(0.0,-1.0,0.0),0.06,0.04),
  94.       torus(vector(0.0,  0.37, 0.0),vector(0.0, 1.0, 0.0),0.06,0.04));
  95. color(landgear,BLUE);
  96. landgear1 = landgear * trans(vector(0.57,0.0,-0.9));                    
  97. landgear2 = landgear * trans(vector(0.45,0.0, 0.4));  
  98.  
  99.  
  100. # base of airplane                
  101. base = list(body,leftwing,rightwing,tail);
  102. color(base,GREEN);
  103.  
  104.  
  105. airplane = list(base,landgear1,landgear2,propeller); 
  106.  
  107.  
  108. interact(airplane);
  109. #save("airplane",airplane);
  110.  
  111.